"""
 Getting and translating keycodes

    wxtoname = { keycode : keyname }
    wxmodtoname = { mod code : keyname }
    wxtoraw = { wxkeycode : rawkeycode }
"""



wxtoname = {
    43 : '=',
    45 : '-',
    91 : '[',
    92 : '\\',
    93 : ']',
    39 : "'",
    59 : ';',
    44 : ',',
    46 : '.',
    47 : '/',
    27 : 'esc',
    126 : 'tilde',
    32 : 'space',
    13 : 'enter',
    314 : 'left',
    315 : 'up',
    316 : 'right',
    317 : 'down',
    312 : 'end',
    313 : 'home',
    366 : 'pg down',
    367 : 'pg up',
    127 : 'delete',
    322 : 'insert',
    364 : 'numlock',

    325 : 'num1',
    326 : 'num2',
    327 : 'num3',
    328 : 'num4',
    329 : 'num5',
    330 : 'num6',
    331 : 'num7',
    332 : 'num8',
    333 : 'num9',
    324 : 'num0',
    392 : 'num/',
    387 : 'num*',
    390 : 'num-',
    388 : 'num+',
    391 : 'num.',
    370 : 'numenter',

    340 : 'f1',
    341 : 'f2',
    342 : 'f3',
    343 : 'f4',
    344 : 'f5',
    345 : 'f6',
    346 : 'f7',
    347 : 'f8',
    348 : 'f9',
    349 : 'f10',
    350 : 'f11',
    351 : 'f12',

    48 : '0',
    49 : '1',
    50 : '2',
    51 : '3',
    52 : '4',
    53 : '5',
    54 : '6',
    55 : '7',
    56 : '8',
    57 : '9',

    65 : 'A',
    66 : 'B',
    67 : 'C',
    68 : 'D',
    69 : 'E',
    70 : 'F',
    71 : 'G',
    72 : 'H',
    73 : 'I',
    74 : 'J',
    75 : 'K',
    76 : 'L',
    77 : 'M',
    78 : 'N',
    79 : 'O',
    80 : 'P',
    81 : 'Q',
    82 : 'R',
    83 : 'S',
    84 : 'T',
    85 : 'U',
    86 : 'V',
    87 : 'W',
    88 : 'X',
    89 : 'Y',
    90 : 'Z'
}

wxmodtoname = {
    0 : '',
    1 : 'alt',
    2 : 'ctrl',
    3 : 'alt+ctrl',
    4 : 'shift',
    5 : 'alt+shift',
    6 : 'ctrl+shift',
    7 : 'alt+ctrl+shift'
}


# enter and numpad enter map to 13
wxtoraw = {
    43 : 187,
    45 : 189,
    91 : 219,
    92 : 220,
    93 : 221,
    39 : 222,
    59 : 186,
    44 : 188,
    46 : 190,
    47 : 191,
    27 : 27,
    32 : 32,
    13 : 13,
    314 : 37,
    315 : 38,
    316 : 39,
    317 : 40,
    312 : 35,
    313 : 36,
    366 : 33,
    367 : 34,
    127 : 46,
    322 : 45,
    364 : 144,
    366 : 33,
    367 : 34,
    325 : 97,
    326 : 98,
    327 : 99,
    328 : 100,
    329 : 101,
    330 : 102,
    331 : 103,
    332 : 104,
    333 : 105,
    324 : 96,
    392 : 111,
    387 : 106,
    390 : 108,
    388 : 107,
    391 : 110,
    340 : 112,
    341 : 113,
    342 : 114,
    343 : 115,
    344 : 116,
    345 : 117,
    346 : 118,
    347 : 119,
    348 : 120,
    349 : 121,
    350 : 122,
    351 : 123,
    370 : 13,

    48 : 48,    # 0 - 9
    49 : 49,
    50 : 50,
    51 : 51,
    52 : 52,
    53 : 53,
    54 : 54,
    55 : 55,
    56 : 56,
    57 : 57,

    65 : 65,    # A - Z
    66 : 66,
    67 : 67,
    68 : 68,
    69 : 69,
    70 : 70,
    71 : 71,
    72 : 72,
    73 : 73,
    74 : 74,
    75 : 75,
    76 : 76,
    77 : 77,
    78 : 78,
    79 : 79,
    80 : 80,
    81 : 81,
    82 : 82,
    83 : 83,
    84 : 84,
    85 : 85,
    86 : 86,
    87 : 87,
    88 : 88,
    89 : 89,
    90 : 90

}

        #'=' : '43' : 187,
        #'-' : '45' : '189',
        #'[ : 91 : '219',
        #'\ : 92 : '220',
        #'] : 93 : '221'
        #'' : 39 : '222',
        #'; : 59 : '186',
        #', : 44 : '188',
        #'. : 46 : '190',
        #'/ : 47 : '191',

        # esc - 27 - 27
        # tilde - 126
        # space = 32 - 32
        # enter = 13 - 13
        # left - 314 - 37
        # up - 315 - 38
        # right - 316 - 39
        # down - 317 - 40
        # end - 312 - 35
        # home - 313 - 36
        # page up - 366
        # page down - 367
        # delete - 127 - 46
        # insert - 322 - 45
        # numlock - 364 - 144

        # num1 - 325 - 97
        # num2 - 326 - 98
        # num3 - 327 - 99
        # num4 - 328 - 100
        # num5 - 329 - 101
        # num6 - 330 - 102
        # num7 - 331 - 103
        # num8 - 332 - 104
        # num9 - 333 - 105
        # num0 - 324 - 96
        # num/ - 392 - 111
        # num* - 387 - 106
        # num- - 390 - 108
        # num+ - 388 - 107
        # num. - 391 - 110

        # f1 - 340 - 112
        # f2 - 341 - 113
        # f3 - 342 - 114
        # f4 - 343 - 115
        # f5 - 344 - 116
        # f6 - 345 - 117
        # f7 - 346 - 118
        # f8 - 347 - 119
        # f9 - 348 - 120
        # f10 - 349 - 121
        # f11 - 350 - 122
        # f12 - 351 - 123

if __name__ == '__main__':
    pass
